(include-book "generators/rule-creator-data-generator")
;;;Tests for the rule creator module

;Verify generate-lifelike-rules*
(defproperty lifelike-rule-generator-correctly-parses-alist
    (birth-states :value (random-birth-state-list)
     death-states :value (random-death-state-list))
    (let* ((rules (generate-lifelike-rules* death-states birth-states)))
        (and    (equal birth-states (ruleset-birth-states rules))
                (equal death-states (ruleset-death-states rules)))))

;;Verify generate-elementary-rules*
(defproperty elementary-rule-generator-correctly-parses-alist
    (code :value (random-wolfram-code))
    (let* ((rules (generate-elementary-rules* code)))
        (and    (equal code (ruleset-wolfram-code rules)))))

;;Verify get-states*

;;Verify get-toplevel-tag*



